Add SCUBA_FROG,-2 : Bob 5,19,SCUBA_FROG,SCUBA_FRAME
Bob Clear : Bob Draw : Screen Swap : Wait 8 : Autoback 0
End If
Wait 50
'
'*** FROG DIVE
If SCUBA_FROG=142-(4*14)
Extension_1_022E 1,0,0,0
If AO_SCUBA_FROGS=1
PTEXT[8,185,"Well done!",1]
End If
Gosub FROG_DIVE : Wait 40 : FLAG=True
End If
'
If FLAG
FLAG=False
If AO_SCUBA_FROGS=0
If AOQ_RIGHT<AOQ_RIGHT_REQ
Fade 1 : Wait 15 : Goto _SAME_LEVEL
Else
Goto _NEXT_LEVEL
End If
End If
End If
'
'*** GET NEW ANSWER
Put Block FROG_YPOS+1 : _ANSWER[FROG_XPOS,FROG_YPOS] : Repeat : ANSWER=LILLY_PADS(Rnd(3),Rnd(2)) : Until ANSWER<>-1
'
For LPX=0 To 3 : LPY=FROG_YPOS : Gosub DISPLAY_WORD : Next LPX : Gosub _ASK_QUESTION
Screen Copy Logic,100,114+(FROG_YPOS*21),320,125+(FROG_YPOS*21) To Physic,100,114+(FROG_YPOS*21)
Gosub _GO_HOME
Else
'*** WRONG
Inc AO_TRIES
If AO_TRIES>2
PTEXT[8,185,"That's wrong, the answer is "+Right$(WORD$(0,ANSWER),Len(WORD$(0,ANSWER))-1),1]
Else
PTEXT[8,185,"That's wrong, try again",1]
End If
Extension_1_022E 1,2,0,0 : Wait 50
'
If AO_TRIES>2
If SCUBA_FROG<_MIN_SCUBA_FROG
Autoback 2 : SCUBA_FRAME=110
For F=0 To 2
Bob 5,19,SCUBA_FROG,SCUBA_FRAME
Add SCUBA_FROG,4 : Add SCUBA_FRAME,1,110 To 111
Bob Clear : Bob Draw : Screen Swap : Wait 8
Next F
Add SCUBA_FROG,2 : Bob 5,19,SCUBA_FROG,SCUBA_FRAME : Bob Clear : Bob Draw
Screen Swap : Wait 8 : Autoback 0
End If
If SCUBA_FROG=_MIN_SCUBA_FROG
Autoback 2
Bob 5,20,_MIN_SCUBA_FROG,113 : Bob Clear : Bob Draw : Screen Swap : Wait 8
Autoback 0
End If
'
'*** GET NEW ANSWER
Put Block FROG_YPOS+1 : _ANSWER[FROG_XPOS,FROG_YPOS]
'
Repeat
ANSWER=LILLY_PADS(Rnd(3),Rnd(2))
Until ANSWER<>-1
'
For LPX=0 To 3
LPY=FROG_YPOS : Gosub DISPLAY_WORD
Next LPX
End If
Gosub _ASK_QUESTION : Screen Copy Logic,100,114+(FROG_YPOS*21),320,115+10+(FROG_YPOS*21) To Physic,100,114+(FROG_YPOS*21)
End If
End If
'
If SC=89
Extension_1_022E 1,3,0,0 : Goto _NEXT_LEVEL
End If
'
If SC=69
Extension_1_022E 1,3,0,0
_QUIT_BIT : Goto _RESET_GAME
End If
End If
Goto _MAIN
'
'********** SEND FROG HOME
_GO_HOME:
Repeat
If FROG_YPOS>0
Anim 1,FROG_U$ : Move X 1,"(1,0,1)" : Move Y 1,"(3,-5,4)"
Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,102
Wait 15 : Dec FROG_YPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,102
End If
Wait 5
If FROG_XPOS<3
Anim 1,FROG_R$ : Move X 1,"(3,15,2)(3,7,2)" : Move Y 1,"(1,0,1)"
Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,94
Wait 15 : Inc FROG_XPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,94
End If
Wait 5
Until FROG_XPOS=3 and FROG_YPOS=0
Wait 20 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,106 : Wait 10
Return
'
'********** FROG SEQUENCES
FROG_DIVE:
'*** HOP OFF LADDER
Autoback 2 : Bob Update On
For I=0 To 42 Step 4
Bob 5,20,142-(4*14)-I,112 : Wait Vbl
Next I
Bob 8,7,41,150 : Wait Vbl
For I=42 To 20 Step -6
Bob 5,20,142-(4*14)-I,112 : Wait Vbl
Next I
Bob 5,20,142-(4*14)-20,113 : Wait Vbl : Wait 95
'*** WALK TO EDGE
For I=0 To 1 : Bob 5,X Bob(5)+6,66,114 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Bob 5,X Bob(5)+6,66,116 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Next I
Bob 5,X Bob(5)+6,66,114 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Bob Off 8 : Wait 140
'
'*** DIVE OFF BOARD (0=Dive, 1=Fall)
FROG_DIVE=Rnd(5)
If FROG_DIVE<>2
Anim 5,"(118,25)(119,15)(118,5)(120,5)(121,5)(122,5)(155,5)" : Move X 5,"(45,0,1)(5,9,2)(5,6,1)" : Move Y 5,"(40,0,1)(5,-8,3)(5,0,1)(5,4,1)(1,4,5)" : Anim On 5 : Move On 5 : Wait 65 : Anim Off 5 : Move Off 5
Move Y 5,"(1,4,200)" : Move On 5 : Repeat : Until Y Bob(5)>135 : Anim Off 5 : Move Off 5
Anim 5,"(155,3)(156,3)(157,3)(158,3)(1,3)" : Move X 5,"(1,0,1)" : Move Y 5,"(1,0,1)" : Anim On 5 : Move On 5
Bob 15,X Bob(5),Y Bob(5),168 : Anim 15,"(168,3)(169,3)(170,3)(171,3)(1,3)" : Anim On 15 : Wait 15 : Anim Off 15 : Anim Off 5 : Move Off 5
End If
If FROG_DIVE=2
Bob 5,X Bob(5)+6,66,114 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Bob 5,X Bob(5)+6,66,116 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 50 : Bob 5,X Bob(5),66,117 : Wait 75 : Bob 5,X Bob(5)+2,66,123 : Wait 4
Move Y 5,"(1,4,200)" : Move On 5 : Repeat : Until Y Bob(5)>135 : Anim Off 5 : Move Off 5
Anim 5,"(162,3)(163,3)(164,3)(1,3)" : Move X 5,"(1,0,1)" : Move Y 5,"(1,0,1)" : Anim On 5 : Move On 5
Bob 15,X Bob(5),Y Bob(5),168 : Anim 15,"(168,3)(169,3)(170,3)(171,3)(1,3)" : Anim On 15 : Wait 15 : Anim Off 15 : Anim Off 5 : Move Off 5
End If
'
'*** NEXT SCUBA FROG
Dec AO_SCUBA_FROGS
If AO_SCUBA_FROGS=0
Bob Off 5 : Bob Off 6 : Bob Off 7
End If
If AO_SCUBA_FROGS=1
Bob 5,20,_MIN_SCUBA_FROG,113 : Bob Off 6 : Bob Off 7
End If
If AO_SCUBA_FROGS=2
Bob 5,20,_MIN_SCUBA_FROG,113 : Bob 6,29,142+14,113 : Bob Off 7
End If
If AO_SCUBA_FROGS=3
Bob 5,20,_MIN_SCUBA_FROG,113 : Bob 6,29,142+14,113 : Bob 7,39,142+14+14,113
End If
Bob Off 8 : Bob Clear : Bob Draw : Screen Swap : Wait Vbl : Autoback 0
SCUBA_FROG=_MIN_SCUBA_FROG
Return
'
'********** SUBROUTINES
'*** ASK QUESTION
_ASK_QUESTION:
Cls Logic,8,185 To 311,196 : PTEXT[8,185,"Find the opposite of "+Right$(WORD$(1,ANSWER),Len(WORD$(1,ANSWER))-1),0]
Screen Copy Logic,8,185,311,196 To Physic,8,185
Return
'
'*** SHOW ANSWERS (ON LILLY-PADS)
_SHOW_ANSWERS:
Ink Point(100,107) : Bar 100,107 To 120,166
For LPX=3 To 0 Step -1
For LPY=0 To 2
If LILLY_PADS(LPX,LPY)<>-1
Paste Bob 121-16+LPX*44,107+LPY*20,129 : Gosub DISPLAY_WORD
C=Asc(Mid$(T$,I,1))-31 : Paste Bob X,Y,C : Add X,PS(C)
Next I
End If
Return
'
'********** LEVEL SEQUENCE
LEVEL_SEQUENCE:
Fade 1 : Wait 15 : Autoback 2 : Cls 0 : Bob Off : Anim Off : Move Off
For I=0 To 5 : Paste Bob 8-16+I*44,111,129 : Next I
'
SKIP_LEVEL:
Add LEVEL,1,0 To 5 : Cls 0,147,42 To 167,62 : Paste Bob 147,42,LEVEL+144 : Autoback 2 : Paste Bob 122,16,183
If LEVEL>0 Then Bob 1,30+(LEVEL-1)*44,120,94 Else Bob 1,250,67,132
Screen Copy Logic To Physic : If Colour(0)=0 Then Fade 1,$C,$FFC,$888,$444,$B0,$2C2,$F,$EE,$B00,$F88,$840,$B60,$FF0,$FFF,$0,$D82 : Wait 15 : Bob Update On
'
'*** FROG ANIMATION
If LEVEL>0
'*** MOVE
Anim 1,FROG_R$ : Move X 1,"(3,15,2)(3,7,2)" : Move Y 1,"(1,0,1)"